#include "cardpanel.h"
#include <QMouseEvent>
#include <QPainter>


CardPanel::CardPanel(QWidget *parent) : QWidget{parent}
{
    // 默认设置为正面
}

// 设置获取图片
void CardPanel::setImage(const QPixmap &front, const QPixmap &back)
{
    m_front = front;
    m_back = back;

    setFixedSize(m_front.size());

    update(); // 更新窗口
}

// 获取图片
QPixmap CardPanel::getImage() const
{
    return m_front;
}

// 设置扑克牌是哪一面
void CardPanel::setFrontSide(bool flag)
{
    m_isfront = flag;
}

// 判断扑克牌是正面还是反面
bool CardPanel::isFrontSide() const
{
    return m_isfront;
}

// 记录窗口是否被选中
void CardPanel::setSelected(bool flag)
{
    m_isSelect = flag;
}

bool CardPanel::isSelected() const
{
    return m_isSelect;
}

// 设置扑克牌的花色及点数
void CardPanel::setCard(const Card &card)
{
    m_card = card;
}

// 获取扑克牌的花色及点数
Card CardPanel::getCard()
{
    return m_card;
}

// 设置扑克牌的拥有者
void CardPanel::setOwner(Player *player)
{
    m_owner = player;
}

// 获取扑克牌的持有者
Player *CardPanel::getOwner() const
{
    return m_owner;
}

// 模拟扑克牌的点击事件
void CardPanel::clicked()
{
    emit cardSelected(Qt::LeftButton);
}

void CardPanel::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);
    QPainter p(this);
    if (m_isfront) {
        p.drawPixmap(rect(), m_front);
    } else {
        p.drawPixmap(rect(), m_back);
    }
}

void CardPanel::mousePressEvent(QMouseEvent *event)
{
    emit cardSelected(event->button());
}

// 发射选中鼠标左键的信号
/*
void CardPanel::clicked()
{
    emit cardSelected(Qt::LeftButton);
}
*/

